/**  
 * 
 */
var myApp = angular.module('plunker', ['ui.bootstrap', 'localStorageModule']);

myApp.directive('dynamic', function ($compile) {
	  return {
	    restrict: 'A',
	    replace: true,
	    link: function (scope, ele, attrs) {
	      scope.$watch(attrs.dynamic, function(descricaoDesdobramento) {
	        ele.html(descricaoDesdobramento);
	        $compile(ele.contents())(scope);
	      });
	    }
	  };
	});

function Boloes($scope,$http){
	
	$scope.mostrarBoloes = true;
	$scope.mostrarResultado = false;
	$scope.mesagemPremioResgatado = "Amostragem para simples conferencia, premio ja resgatado!";
	$scope.resgatarPremio = false;
	$scope.premioResgatado = false;
	$scope.tipoDeJogo;
	
	$scope.dtInicio;
	$scope.dtFim;
	
	$scope.carregarBoloes = function(idUsuario,tipoDeJogo){
		$scope.tipoDeJogo = tipoDeJogo;
		$http.get("/restservice/usuario/findBolaoByUsuario/"+idUsuario).success(function(data){
			$scope.compraBolaoUsuarios = data;
		});
		$scope.mostrarBoloes = true;
		$scope.mostrarResultado = false;
		$scope.premioResgatado = false;
	};
	
	$scope.carregarResultados = function(compraBolaoUsuario){
		$scope.compraBolaoUsuarios = compraBolaoUsuario;
		$scope.seqSorteada = compraBolaoUsuario.seqSorteada;
		$scope.totalDeCotas = compraBolaoUsuario.totalDeCotas;
		$scope.qtdCotas = compraBolaoUsuario.qtdCota;
		$http.get("/restservice/bolao/findPremiosBolao/"+compraBolaoUsuario.idBolao).success(function(data){
			$scope.resultados = data;
			$scope.mostrarBoloes = false;
			$scope.mostrarResultado = true;
			refreshTotal();
		});
	};

	$scope.carregarJogos = function(bolao){
		$scope.jogos = [];
		$scope.identificadorGrupo = bolao.identificadorGrupo;
		$scope.descDesdobramento = bolao.descricaoDesdobramento;

		$http.get("/restservice/bolao/findJogosByBolao/"+bolao.idBolao).success(function(data){
			$scope.filteredTodos = [],
			  $scope.currentPage = 1
			  ,$scope.numPerPage = 10
			  ,$scope.maxSize = 5;
				  
			$scope.jogos = data;
		});
		
		  $scope.numPages = function () {
			    return Math.ceil($scope.jogos.length / $scope.numPerPage);
			  };


			  $scope.$watch('currentPage + numPerPage', function() {
			    var begin = (($scope.currentPage - 1) * $scope.numPerPage)
			    , end = begin + $scope.numPerPage;
			    
			    $scope.filteredTodos = $scope.todos.slice(begin, end);
			  });
	};

	
	$scope.resgatarPremio = function(idUsuario){
		var compraBolaoUsuario = {idCarrinhoBolao:$scope.compraBolaoUsuarios.idCarrinhoBolao,idUsuario:idUsuario};
		$http.post("/restservice/usuario/resgatarPremioBolao",compraBolaoUsuario).success(function(){
			$scope.premioResgatado = true;
			$scope.mostrarResultado = false;
		});
		
	};
	
	function refreshTotal() {
		$scope.total = 0;
		for (var key in $scope.resultados) {
			$scope.total += (($scope.resultados[key].valorDoGanho  / $scope.totalDeCotas) * $scope.qtdCotas);
		}
		$scope.$apply();
	}
	
}